package jmine.tec.datadigester.positional.writer.factory;

import jmine.tec.datadigester.positional.writer.PositionalFieldWriter;

/**
 * Factory para criação de {@link PositionalFieldWriter} específicos
 * 
 * @author israel.crisanto
 * @param <T> metadata type
 */
public interface PositionalWriterFactory<T> {

    /**
     * Cria o field writer específico para o metadata informados
     * 
     * @param metadata metadata
     * @return o {@link PositionalFieldWriter} responsável pelo método, devidamente anotado
     */
    PositionalFieldWriter create(T metadata);

    /**
     * Metadata type
     * 
     * @return type
     */
    Class<T> getFieldMetadataType();
}
